set(LLDB_SYSTEM_LIBS)

if (APPLE)
  list(APPEND LLDB_SYSTEM_LIBS
       ${FOUNDATION_LIBRARY}
       ${CORE_FOUNDATION_LIBRARY}
       ${CORE_SERVICES_LIBRARY}
       ${SECURITY_LIBRARY}
       ${DEBUG_SYMBOLS_LIBRARY})
endif()

if(NOT PURE_WINDOWS)
  list(APPEND LLDB_SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
endif()

list(APPEND LLDB_SYSTEM_LIBS ${CMAKE_DL_LIBS})

if (CMAKE_SYSTEM_NAME MATCHES "Windows")
  list(APPEND LLDB_SYSTEM_LIBS ws2_32 rpcrt4)
endif ()

if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB )
    list(APPEND LLDB_SYSTEM_LIBS atomic)
endif()

add_lldb_library(lldbUtility
  ArchSpec.cpp
  Args.cpp
  Baton.cpp
  Broadcaster.cpp
  CompletionRequest.cpp
  Connection.cpp
  ConstString.cpp
  DataBufferHeap.cpp
  DataBufferLLVM.cpp
  DataEncoder.cpp
  DataExtractor.cpp
  Environment.cpp
  Event.cpp
  FileSpec.cpp
  GDBRemote.cpp
  IOObject.cpp
  LLDBAssert.cpp
  LLDBLog.cpp
  Listener.cpp
  Log.cpp
  NameMatches.cpp
  ProcessInfo.cpp
  RegisterValue.cpp
  RegularExpression.cpp
  Reproducer.cpp
  Instrumentation.cpp
  ReproducerProvider.cpp
  Scalar.cpp
  SelectHelper.cpp
  State.cpp
  Status.cpp
  Stream.cpp
  StreamString.cpp
  StringExtractor.cpp
  StringExtractorGDBRemote.cpp
  StringLexer.cpp
  StringList.cpp
  StructuredData.cpp
  TildeExpressionResolver.cpp
  Timer.cpp
  TraceGDBRemotePackets.cpp
  TraceIntelPTGDBRemotePackets.cpp
  UnimplementedError.cpp
  UUID.cpp
  UriParser.cpp
  UserID.cpp
  UserIDResolver.cpp
  VASprintf.cpp
  VMRange.cpp
  XcodeSDK.cpp

  LINK_LIBS
    ${LLDB_SYSTEM_LIBS}
    # lldbUtility does not depend on other LLDB libraries

  LINK_COMPONENTS
    BinaryFormat
    Support
  )
